/**
 * 
 */
package com.activities;


import android.app.Activity;
import com.Data.Albums.onDeleteCompleted;


/**
 * @author Chris
 * 
 */
public interface DefaultFunctions {

    /**
     * Clear the list
     */
    void clear();

    /**
     * @param object
     * 
     *            Object to look for if its present in the list
     * 
     * @return
     */
    boolean contains(int object);

    /**
     * @return
     * 
     *         Returns the current activity used
     * 
     */
    Activity getParentActivity();

    /**
     * Init the listview and adapter
     */
    void Init();

    /**
     * @param SoapUtilMode
     * 
     *            Mode to download from, News, Explore, etc...
     */
    void loadFrom(int SoapUtilMode, int index);

    /**
     * @param tag
     * 
     *            Tag to look for
     */
    void loadFromTags(String tag);

    /**
     * Hide no connection message
     */
    void onConnection();

    /**
     * Show no connection message
     */
    void onNoConnection();

    /**
     * Refresh the list
     */
    void refresh();

    /**
     * @param object
     * 
     *            Object to remove, it can be a derivate of ItemPost
     * 
     */
    void remove(Object object);

    void remove(Object object, onDeleteCompleted callback);

    /**
     * @param result
     * 
     *            List to add to the adapter
     * 
     */
    void resultList(Object[] result);

    /**
     * Show loading message
     */
    void setLoading();

    /**
     * @param message
     * 
     *            Message to show
     * 
     * @param iconResource
     * 
     *            Icon to show with the message
     */
    void setMessage(String message, int iconResource);

    /**
     * Show the message saying theres no items in the list
     */
    void setNoItemsMessage();

    /**
     * Stop showing loading message
     */
    void stopLoading();

    /**
     * @param objectId
     * 
     *            Id of the picture or comment
     * 
     * @param count
     * 
     *            New count of comments
     * 
     */
    void updateComments(int objectId, int count);

    /**
     * @param objectId
     * 
     *            Id of the picture or comment
     * 
     * @param count
     * 
     *            New count of likes
     */
    void updateLikes(int objectId, int count);

    /**
     * @param id
     * 
     *            Id of the object to update the permissions
     * 
     * @param newPermissions
     * 
     *            int new permission
     */
    void updatePermissions(int id, int newPermissions);

    /**
     * @param id
     * 
     *            Id of the object to update the current time
     * 
     */
    void updateTime(int id);

}
